package com.zimmur.service.zone;

import java.util.List;
import java.util.TreeSet;

import com.zimmur.common.AppModuleEnum;
import com.zimmur.model.account.GoodsUser;
import com.zimmur.model.zone.SharedProperty;
import com.zimmur.model.zone.Topic;
import com.zimmur.model.zone.TopicExample;
import com.zimmur.tools.PageUtil;
import com.zimmur.tools.PageUtil_TopicCollect;
/**
 * 社区话题服务接口
 * @author Administrator
 *
 */
public interface ITopicService {
	/**
     * 话题评论大赏
     * @param topicId
     * @param commentId 评论ID
     * @return
     */
    boolean topicReward(long topicId,long commentId);
	/**
	 * 话题查询
	 * @param key
	 * @param curUserId 当前访问用户ID
	 * @param pageNow 当前页数
	 * @return
	 */
	PageUtil<Topic> topicQuery(String key,long curUserId,Integer pageNow);
	/**
	 * 话题查询
	 * @param key
	 * @param curUserId 当前访问用户ID
	 * @param pageNow 当前页数
	 * @return
	 */
	PageUtil<com.zimmur.solr.model.Topic> topicQueryBySolr(String key,long curUserId,Integer pageNow);
    /**
     * 社区首页
     * @param createUserId
     * @return
     */
    TopicExample topicIndex(long createUserId);
    /**
     * 社区话题按类型   分页
     * @param createUserId
     * @param pageNow
     * @return
     */
    PageUtil<Topic> topicPage(long createUserId,Integer pageNow,short topicType);
	
	/**
	 * 星客 发起 话题
	 * @param topic
	 */
    int insertTopicAndStar(Topic topic);
    /**
	 * 知客 发起 话题
	 * @param topic
	 */
    int insertTopicAndKnow(Topic topic);
    /**
     * 添加话题
     * @param topic
     * @return
     */
    int addTopic(Topic topic,String categoryCode);
    /**
     * 修改浏览数
     * @return
     */
    int updateStopicBrowserNum(Topic topic);
    /**
     * 修改转发数
     * @return
     */
    int updateStopicShareNum(long topicId,long createUser);
    /**
     * 修改是否打赏
     * @return
     */
    int updateStopicrewardStatus(Topic topic);
    /**
     * 
     * v1.2.0
     * 按id查询其对象
     * @param topicId
     * @return
     */
    com.zimmur.restful.model.Topic selectByTopicIdV120(long topicId,long userId);
    /**
     * 按id查询其对象
     * @param topicId
     * @return
     */
    com.zimmur.restful.model.Topic selectByTopicId(long topicId,long userId);
    /**
     * 根据用户ID查询话题列表对其分页
     * @param createUser
     * @return
     */
    List<Topic> userIdTopicListPage(long createUser,Integer pageNow);
    /**
     * userId 用户 的  话题分页
     * @param createUser 当前用户
     * @param userId 
     * @param pageNow
     * @return
     */
    PageUtil_TopicCollect userIdTopicPageList(long createUser,Long userId,Integer pageNow,String key);
   
    /**
     * 我收藏的话题
     * @param createUser
     * @param pageNow
     * @return
     */
    List<Topic> myCollectTopicList (long createUser,Integer pageNow);
    /**
     * 我参与的话题
     * @param createUser
     * @param pageNow
     * @return
     */
    List<Topic> myInvolvementTopic (long createUser,Integer pageNow);
    /**
     * 根据话题ID集合in一次性查询
     * @param topicIds
     * @return
     */
    List<Topic> selectListByTopicIds(TreeSet<Long> topicIds);
    /**
     * 统计主页话题总记录数
     * @param SharedProperty
     * @return
     */
    int indexCountTopic(SharedProperty SharedProperty);
    /**
     * 主页信息
     * @param createUser
     * @param pageNow
     * @return
     */
    PageUtil<Topic> indexTopicList(long createUser, Integer pageNow,AppModuleEnum module);
    /**
     * 查询衣匠的系列话题
     * @param createUser
     * @param topicType
     * @param pageNow
     * @param module
     * @return
     */
    PageUtil<Topic> selectTopicByCreateUser(long createUser,Integer topicType,Integer pageNow);
}  